Aleph kernel

Aleph was an operating system kernel developed at the University of Rochester as part of their RIG project in 1975. Aleph used inter-process communications to move data between programs and the kernel, so applications could transparently access resources on any machine on the local area network (which at the time was a 3-Mbit/s experimental Xerox Ethernet). The project eventually petered out after several years due to rapid changes in the computer hardware market, but the ideas led to the creation of Accent at Carnegie Mellon University, leading in turn to Mach.

Applications written for the RIG system communicated via ports. Ports were essentially message queues that were maintained by the Aleph kernel, identified by a machine unique (as opposed to globally unique) ID consisting of a process id, port id pair. Processes were automatically assigned a process number, or pid, on startup, and could then ask the kernel to open ports. Processes could open several ports and then "read" them, automatically blocking and allowing other programs to run until data arrived. Processes could also "shadow" another, receiving a copy of every message sent to the one it was shadowing. Similarly, programs could "interpose" on another, receiving messages and essentially cutting the original message out of the conversation.

RIG was implemented on a number of Data General Eclipse minicomputers. This presented a major performance problem because the system could copy data only 2kB at a time. Another problem, realized only in retrospect, was that the use of global ID's allowed malicious software to "guess" at ports and thereby gain access to resources they should not have had.

References

Rashid, Richard F (1986). "From RIG to Accent to Mach: the evolution of a network operating system". Proceedings of 1986 ACM Fall joint computer conference. pp. 1128–1137. ISBN 0-8186-4743-4. http://portal.acm.org/citation.cfm?id=325071.